/* ____ _ __ _ _ _
| _ \ _ __ ___ _ __ ___ | |/ /__ _ _ __ ___ __ _| | | | __ _(_)_ __
| |_) | '__/ _ \ '_ ` _ \ | ' // _` | '_ ` _ \ / _` | | _ | |/ _` | | '_ \
| __/| | | __/ | | | | | | . \ (_| | | | | | | (_| | | | |_| | (_| | | | | |
|_| |_| \___|_| |_| |_| |_|\_\__,_|_| |_| |_|\__,_|_| \___/ \__,_|_|_| |_|
*/
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef unsigned long long ull;
typedef long double lld;
#define hell 1000000007
#define PI 3.141592653589793238462
#define INF 1e18
#define vi vector<ll>
#define pb push_back
#define ppb pop_back
#define mii map<ll,ll>
#define pii pair<ll,ll>
#define mp make_pair
#define ff first
#define ss second
#define all(x) (x).begin(), (x).end()
/*____________________________________________________________________________________________________________________________________________________________________________________________________*/
vector<ll> sieve(int n) {int*arr = new int[n + 1](); vector<ll> vect; for (int i = 2; i <= n; i++)if (arr[i] == 0) {vect.push_back(i); for (int j = 2 * i; j <= n; j += i)arr[j] = 1;} return vect;}
ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
// ll mod_div(ll a, ll b, ll m) {a = a % m; b = b % m; return (mod_mul(a, mminvprime(b, m), m) + m) % m;} //only for prime m
ll expo(ll a, ll b, ll mod) {ll res = 1; while (b > 0) {if (b & 1)res = (res * a) % mod; a = (a * a) % mod; b = b >> 1;} return res;}
/*____________________________________________________________________________________________________________________________________________________________________________________________________*/
ll dfs(vi adj_list[], ll color[], bool visited[], ll current){
visited[current] = true;
ll ans = 0;
for(auto next_vertex : adj_list[current]){
if(!visited[next_vertex]){
if(color[next_vertex] != color[current]){
ans++;
}
ans += dfs(adj_list, color, visited, next_vertex);
}
}
return ans;
}
void solve()
{
ll n;
cin >> n;
vi adj_list[n + 1];
for(ll i = 2; i <= n; i++){
ll x;
cin >> x;
adj_list[i].pb(x);
adj_list[x].pb(i);
}
ll color[n + 1];
bool visited[n + 1];
for(ll i = 1; i <= n; i++){
cin >> color[i];
visited[i] = false;
}
ll ans = dfs(adj_list, color, visited, 1);
cout << ans + 1 << endl;
return;
}
int main()
{
ios_base::sync_with_stdio(false);
int t = 1;
// cin >> t;
for(ll i = 0; i < t; i++){
solve();
}
return 0;
}
810A - Straight A | 1433C - Dominant Piranha |
633A - Ebony and Ivory | 1196A - Three Piles of Candies |
299A - Ksusha and Array | 448B - Suffix Structures |
1092B - Teams Forming | 1166C - A Tale of Two Lands |
544B - Sea and Islands | 152B - Steps |
1174D - Ehab and the Expected XOR Problem | 1511A - Review Site |
1316A - Grade Allocation | 838A - Binary Blocks |
1515D - Phoenix and Socks | 1624D - Palindromes Coloring |
1552F - Telepanting | 1692G - 2Sort |
1191A - Tokitsukaze and Enhancement | 903A - Hungry Student Problem |
52B - Right Triangles | 1712A - Wonderful Permutation |
1712D - Empty Graph | 1712B - Woeful Permutation |
1712C - Sort Zero | 1028B - Unnatural Conditions |
735B - Urbanization | 746C - Tram |
1278B - A and B | 1353D - Constructing the Array |